package com.fpc.instanceofOrSt;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

public class testMap {
	//null值可以强制转换为任何java类类型，(String)null也是合法的。
	public static void main(String[] args) {
		//null 既不是对象类型，也不是String类型 ，null不属于任何类型
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("abcd", "");
		map.put("bbb", 1321322323);
		map.put("aaa", null);
		Map<String,Object> map2=new HashMap<String,Object>();
		if(map.get("abcd") instanceof String) {
			System.out.println("空字符串是String类型");
		}
		if(map.get("abcd") instanceof Object) {
			System.out.println("空字符串是Object类型");
		}
		if(map.get("bbb") instanceof Integer) {
			System.out.println("数字对象类型是Integer类型");
		}
		if(map.get("bbb") instanceof Long) {
			System.out.println("数字对象类型是Long类型");
		}
		if(map.get("bbb") instanceof Object) {
			System.out.println("数字对象类型是Object类型");
		}
		if(map.get("bbb") instanceof String) {
			//System.out.println("数字对象类型是Object类型");
			//结论数字类型不是String 类型
		}
		if(map.get("aaa") instanceof Object || map.get("aaa") instanceof String || map.get("aaa") instanceof Integer) {
			//结论 null 在 instanceof 中不属于任何类型，null 不是 Object类型，但是可以强转 Object类型
			System.out.println("aaa:null");
		}
		
		//结论 null 在 instanceof 中不属于任何类型
		
		Map fsad= (Map) map.get("");
		System.out.println(fsad);
		
		List aaa= (List) null;
		Map bbb=(Map) null;
		Object bbb2=(Map) null;
		String  strnull= (String) null;
		System.out.println("strnull:"+strnull);
		
		map.put("abcd", "123");
		if(map.get("abcd") instanceof Integer) {
			System.out.println("abcd=\"12\",是Integer类型");
		}else {
			System.out.println("abcd=\"12\",不是Integer类型");
		}
		
		//StringUtils.isNumeric 数字不能带有符号（如+，—，. 等），既0和非符号正整数
		if(StringUtils.isNumeric("12")) {
			System.out.println("abcd=\"12\",是数字");
		}
		
		
	}

}
